package com.doubao.user.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 会员等级DTO
 */
@Data
@Schema(description = "会员等级DTO")
public class MembershipLevelDTO implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * ID
     */
    @Schema(description = "会员等级ID")
    private Integer id;

    /**
     * 会员等级名称
     */
    @Schema(description = "会员等级名称")
    private String name;

    /**
     * 会员等级编码
     */
    @Schema(description = "会员等级编码")
    private String code;

    /**
     * 每日token限额
     */
    @Schema(description = "每日token限额")
    private Integer dailyTokenLimit;

    /**
     * 每日聊天次数
     */
    @Schema(description = "每日聊天次数")
    private Integer chatLimit;

    /**
     * 每日切换智能体次数
     */
    @Schema(description = "每日切换智能体次数")
    private Integer switchAgentLimit;

    /**
     * 周卡价格
     */
    @Schema(description = "周卡价格")
    private BigDecimal priceWeekly;

    /**
     * 月卡价格
     */
    @Schema(description = "月卡价格")
    private BigDecimal priceMonthly;

    /**
     * 季卡价格
     */
    @Schema(description = "季卡价格")
    private BigDecimal priceQuarterly;

    /**
     * 年卡价格
     */
    @Schema(description = "年卡价格")
    private BigDecimal priceYearly;

    /**
     * 会员描述
     */
    @Schema(description = "会员描述")
    private String description;

    /**
     * 会员图标
     */
    @Schema(description = "会员图标")
    private String icon;

    /**
     * 状态 1:启用 0:禁用
     */
    @Schema(description = "状态 1:启用 0:禁用")
    private Integer status;

    /**
     * 创建时间
     */
    @Schema(description = "创建时间")
    private LocalDateTime createdAt;

    /**
     * 更新时间
     */
    @Schema(description = "更新时间")
    private LocalDateTime updatedAt;
}